Fix prelighting. (#157392, Vincent Noel, patch by Christian Persch)
authorMatthias Clasen <matthiasc@src.gnome.org>
Tue, 1 Mar 2005 16:07:04 +0000 (16:07 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Tue, 1 Mar 2005 16:07:04 +0000 (16:07 +0000)
* gtk/gtkmenutoolbutton.c (button_state_changed_cb):
Fix prelighting.  (#157392, Vincent Noel, patch by
Christian Persch)

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-8
gtk/gtkmenutoolbutton.c

index 0517ec73478f89ce862f1bf266e357938e86aea0..b97f3831af0f89e7ea583c3505446656f0f3905d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2005-03-01  Matthias Clasen  <mclasen@redhat.com>
 
+       * gtk/gtkmenutoolbutton.c (button_state_changed_cb): 
+       Fix prelighting.  (#157392, Vincent Noel, patch by
+       Christian Persch)
+
        * gtk/gtkicontheme.c (theme_lookup_icon): Make 
        icon data caching work again.  (#168851, Alexander Larsson)
 
index 0517ec73478f89ce862f1bf266e357938e86aea0..b97f3831af0f89e7ea583c3505446656f0f3905d 100644 (file)
@@ -1,5 +1,9 @@
 2005-03-01  Matthias Clasen  <mclasen@redhat.com>
 
+       * gtk/gtkmenutoolbutton.c (button_state_changed_cb): 
+       Fix prelighting.  (#157392, Vincent Noel, patch by
+       Christian Persch)
+
        * gtk/gtkicontheme.c (theme_lookup_icon): Make 
        icon data caching work again.  (#168851, Alexander Larsson)
 
index 0517ec73478f89ce862f1bf266e357938e86aea0..b97f3831af0f89e7ea583c3505446656f0f3905d 100644 (file)
@@ -1,5 +1,9 @@
 2005-03-01  Matthias Clasen  <mclasen@redhat.com>
 
+       * gtk/gtkmenutoolbutton.c (button_state_changed_cb): 
+       Fix prelighting.  (#157392, Vincent Noel, patch by
+       Christian Persch)
+
        * gtk/gtkicontheme.c (theme_lookup_icon): Make 
        icon data caching work again.  (#168851, Alexander Larsson)
 
index f7249f13de7679b75d991bf8c7b05805b09e2336..6448d6e15400a0d0d96e089ad98c7961eb63362b 100644 (file)
@@ -277,11 +277,17 @@ button_state_changed_cb (GtkWidget         *widget,
     {
       gtk_widget_set_state (other, state);
     }
-  else if (state == GTK_STATE_ACTIVE)
+  else if (state == GTK_STATE_ACTIVE ||
+           (state == GTK_STATE_INSENSITIVE && other == priv->arrow_button))
     {
       gtk_widget_set_state (other, GTK_STATE_NORMAL);
     }
 
+  if (state == GTK_STATE_INSENSITIVE && other == priv->arrow_button && button->priv->menu)
+    {
+      gtk_menu_shell_deactivate (GTK_MENU_SHELL (button->priv->menu));
+    }
+
   g_signal_handlers_unblock_by_func (other,
                                      G_CALLBACK (button_state_changed_cb),
                                      button);